﻿namespace Material.Mvc.Models
{
    /// <summary>
    /// 生产计划列表项模型
    /// </summary>
    public class Production_PlanList
    {
        public int Id { get; set; }          // 计划ID

        /// <summary>
        /// 计划编号
        /// </summary>
        public string Plan_Number { get; set; }  // 计划编号

        /// <summary>
        /// 计划名称
        /// </summary>
        public string Plan_Name { get; set; }    // 计划名称

        /// <summary>
        /// 工单数量
        /// </summary>
        public int Quantity_Orders { get; set; }  // 工单数量

        /// <summary>
        /// 来源类型
        /// </summary>
        public string Source_Type { get; set; }   // 来源类型

        /// <summary>
        /// 订单编号
        /// </summary>
        public string Order_Number { get; set; }  // 订单编号

        /// <summary>
        /// 产品ID
        /// </summary>
        public int Product_Id { get; set; }       // 产品ID

        /// <summary>
        /// 计划数量
        /// </summary>
        public int Planned_quantity { get; set; } // 计划数量

        /// <summary>
        /// 计划开工时间
        /// </summary>
        public DateTime Start_Time { get; set; }  // 计划开工时间

        /// <summary>
        /// 计划完工时间
        /// </summary>
        public DateTime Completion_Time { get; set; } // 计划完工时间

        /// <summary>
        /// 需求日期
        /// </summary>
        public DateTime Requirement_Date { get; set; } // 需求日期

        /// <summary>
        /// 状态
        /// </summary>
        public int State { get; set; }            // 状态

        /// <summary>
        /// 备注
        /// </summary>
        public string Notes { get; set; }         // 备注

        /// <summary>
        /// 成品名称
        /// </summary>
        public string Product_Name { get; set; }  // 成品名称

        /// <summary>
        /// 成品编号
        /// </summary>
        public string Product_Number { get; set; } // 成品编号

        /// <summary>
        /// 规格型号
        /// </summary>
        public string Specification { get; set; } // 规格型号

        /// <summary>
        /// 成品类型
        /// </summary>
        public string Finished_Type { get; set; } // 成品类型

        /// <summary>
        /// 单位
        /// </summary>
        public string Unit { get; set; }          // 单位

        // 保留的兼容字段
        public string CreateBy { get; set; } // 创建人
        public DateTime CreateTime { get; set; } // 创建时间
    }

    /// <summary>
    /// 生产计划列表查询模型
    /// </summary>
    public class ProductionPlanQueryModel
    {
        // 新增的查询字段
        public string Plan_Number { get; set; }  // 计划编号查询
        public string Plan_Name { get; set; }    // 计划名称查询
        public string Order_Number { get; set; }  // 订单编号查询
        public string Source_Type { get; set; }   // 来源类型查询
        public int? Product_Id { get; set; }       // 产品ID查询
        public int? State { get; set; }            // 状态查询
        public string Product_Name { get; set; }   // 成品名称查询
        public string Product_Number { get; set; } // 成品编号查询
        public string Specification { get; set; }  // 规格型号查询
        public string Finished_Type { get; set; }  // 成品类型查询
        public string Unit { get; set; }           // 单位查询

        // 日期查询字段
        public DateTime? Start_Time { get; set; }  // 计划开工时间查询
        public DateTime? Completion_Time { get; set; } // 计划完工时间查询
        public DateTime? Requirement_Date { get; set; } // 需求日期查询

        // 分页字段
        public int PageIndex { get; set; } = 1;  // 页码
        public int PageSize { get; set; } = 10;  // 每页大小
    }

    /// <summary>
    /// 生产计划列表分页结果模型
    /// </summary>
    public class ProductionPlanPagedResult
    {
        public List<Production_PlanList> Items { get; set; } = new List<Production_PlanList>();
        public int TotalCount { get; set; }   // 总记录数
        public int PageIndex { get; set; }    // 当前页码
        public int PageSize { get; set; }     // 每页大小
        public int TotalPages => (int)Math.Ceiling((double)TotalCount / PageSize); // 总页数
    }
}
